package org.whatisjava.action;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.util.ValueStack;

/**
 * 
 * @author Wangpeihu
 * @team [Never give up]
 * @since JDK1.6(建议)
 * @date 2010-1-27
 */
public class TestGenericAction extends BaseAction {

	private static final long serialVersionUID = 1L;
	private Map<String, String> testMap;

	public Map<String, String> getTestMap() {
		return this.testMap;
	}

	public void setTestMap(Map<String, String> testMap) {
		this.testMap = testMap;
	}

	private String name = "王培虎";

	public String getName() {
		return this.name;
	}

	public void setName(String name) {
		this.name = name;
	}

	private String youku = "做实验";

	public String getYouku() {
		return this.youku;
	}

	public void setYouku(String youku) {
		this.youku = youku;
	}

	public String execute() {

		ActionContext ctx = ActionContext.getContext();
		ValueStack stack = ctx.getValueStack();

		// 将TestGenericAction里面的name属性设置成我想要的。 前面是OGNL,后面是值
		// 设置ValueStack Root 里面对象
		stack.setValue("name", "看看");

		// 加了 ＃从ValueStack Content里面取
		Object object1 = stack.findValue("name");
		System.out.println(object1);

		// 没加 从当前的ValueStack的root对象 的第一个对象里面取有该属性的对象，
		Object object2 = stack.findValue("#request");
		System.out.println(object2);

		// 往该ValueStack 的root对象里面放一个对象，这个对象在栈顶
		stack.push(new Date());

		// 让他出栈
		// stack.pop();

		// 往该ValueStack相关联 的Content里面放
		ctx.put("date", new Date());

		/*********************************************************************/

		testMap = new HashMap<String, String>();
		testMap.put("h", "helloworl");
		testMap.put("b", "book");
		testMap.put("x", "xwork");
		testMap.put("c", "cookbook");
		/*********************************************************************/
		ctx.put("tts", "The public ");
		return "success";

		/*********************************************************************/

	}
}
